package no.sachmuld.methodcombination.examples.performance;

import org.junit.Assert;
import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 *
 */
public abstract class FooTestTemplate {

    @Test
    public void shouldExecuteBehaviourStandardMethodStyle() throws Exception {
        List<Step> expected = Arrays.asList(Step.values());
        List<Step> actual = new ArrayList<>();

        Foo foo = createFoo();
        foo.setTrace(actual);
        foo.bar(0);

        Assert.assertEquals(expected, actual);

    }

    protected abstract Foo createFoo();

}
